接触 Android 开发也已经2年多了,从入门到目前能开发些小东西也经历了不少,还好对 Java 没有放弃过,并且有2年多的经验,还算顺利。
翻开笔记,是时候该整理一下,归个档了,第一篇就写从 Android 周边工具开始吧。
adb 全称 Android Debug Bridge,可想而知它的用处。
先看一下官方页面上的用法
adb [-d|-e|-s <serialNumber>] <command>
因此 adb 还可以后面跟 command 来进行组合,实现更多功能。
这里 -d 意思是 device 直接连某一个设备, -e 是 emulator 直接连某一个模拟器,-s 就是在多个设备的情况下,后跟 serialNumber ,即设备名称。
下面就根据 command 来挑几个好用的
主要用法
abd devices //打印设备列表
adb shell //进入shell, 因为Android是基于linux 内核,所以到shell以后,可以做很多事情
日志
adb logcat //后跟各类参数
这里贴一个手头在用的脚本
pid=`adb shell ps | grep com.example.ui | awk '{print $2}'`
adb logcat -c
adb logcat -v threadtime *:i | grep --color=auto $pid
直接做成一个脚本, com.example.ui 替换成需要打印日志的应用,然后在 cmd 下运行,丢到大屏幕上边看边调试吧。。。
应用文件
adb install /path/to/apk //安装应用
adb uninstall packagename //卸载应用
adb pull /path/to/file /path/to/local //把手机上的文件下载下来
adb push /path/to/apk /data/data //把apk或文件推送到某个目录
一些有用的命令
截屏
adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png
26 是屏幕点亮或者熄灭,是个 toggle button
adb shell input keyevent 26
发送一些 intent 或者broadcast 给设备
adb shell am start PACKAGE_NAME/ACTIVITY_IN_PACKAGE
发条短消息到10086 , 22 是发送键, 66 是回车键
adb shell am start -a android.intent.action.SENDTO -d sms:10086 --es sms_body "hello" --ez exit_on_sent true
adb shell input keyevent 22
adb shell input keyevent 66
获取设备的一些属性
adb shell getprop
测试
Monkey 测试,比较酷, 像只猴子乱测试 ,可以指定某个包, 事件次数
adb shell monkey -v -p your.package.name 500
虽说是个 monkey 测试,假若结合python 脚本,结合 发送按键 的 adb 命令,加上这个monkey可以做到有针对性的测试和随机测试。